Public Class MembershipUser
    Implements IMembershipUser

#Region " Private Members "

    Private _comment As String
    Private _creationDate As DateTime
    Private _email As String
    Private _isApproved As Boolean
    Private _isLockedOut As Boolean
    Private _isOnline As Boolean
    Private _lastActivityDate As DateTime
    Private _lastLockoutDate As DateTime
    Private _lastLoginDate As DateTime
    Private _lastPasswordChangedDate As DateTime
    Private _passwordQuestion As String
    Private _providerName As String
    Private _providerUserKey As Object
    Private _userName As String

#End Region

#Region " Public Properties "

    Public Property Comment() As String Implements IMembershipUser.Comment
        Get
            Return _comment
        End Get
        Set(ByVal value As String)
            _comment = value
        End Set
    End Property

    Public Property CreationDate() As DateTime Implements IMembershipUser.CreationDate
        Get
            Return _creationDate
        End Get
        Set(ByVal value As DateTime)
            _creationDate = value
        End Set
    End Property

    Public Property Email() As String Implements IMembershipUser.Email
        Get
            Return _email
        End Get
        Set(ByVal value As String)
            _email = value
        End Set
    End Property

    Public Property IsApproved() As Boolean Implements IMembershipUser.IsApproved
        Get
            Return _isApproved
        End Get
        Set(ByVal value As Boolean)
            _isApproved = value
        End Set
    End Property

    Public Property IsLockedOut() As Boolean Implements IMembershipUser.IsLockedOut
        Get
            Return _isLockedOut
        End Get
        Set(ByVal value As Boolean)
            _isLockedOut = value
        End Set
    End Property

    Public Property IsOnline() As Boolean Implements IMembershipUser.IsOnline
        Get
            Return _isOnline
        End Get
        Set(ByVal value As Boolean)
            _isOnline = value
        End Set
    End Property

    Public Property LastActivityDate() As DateTime Implements IMembershipUser.LastActivityDate
        Get
            Return _lastActivityDate
        End Get
        Set(ByVal value As DateTime)
            _lastActivityDate = value
        End Set
    End Property

    Public Property LastLockoutDate() As DateTime Implements IMembershipUser.LastLockoutDate
        Get
            Return _lastLockoutDate
        End Get
        Set(ByVal value As DateTime)
            _lastLockoutDate = value
        End Set
    End Property

    Public Property LastLoginDate() As DateTime Implements IMembershipUser.LastLoginDate
        Get
            Return _lastLoginDate
        End Get
        Set(ByVal value As DateTime)
            _lastLoginDate = value
        End Set
    End Property

    Public Property LastPasswordChangedDate() As DateTime Implements IMembershipUser.LastPasswordChangedDate
        Get
            Return _lastPasswordChangedDate
        End Get
        Set(ByVal value As DateTime)
            _lastPasswordChangedDate = value
        End Set
    End Property

    Public Property PasswordQuestion() As String Implements IMembershipUser.PasswordQuestion
        Get
            Return _passwordQuestion
        End Get
        Set(ByVal value As String)
            _passwordQuestion = value
        End Set
    End Property

    Public Property ProviderName() As String Implements IMembershipUser.ProviderName
        Get
            Return _providerName
        End Get
        Set(ByVal value As String)
            _providerName = value
        End Set
    End Property

    Public Property ProviderUserKey() As Object Implements IMembershipUser.ProviderUserKey
        Get
            Return _providerUserKey
        End Get
        Set(ByVal value As Object)
            _providerUserKey = value
        End Set
    End Property

    Public Property UserName() As String Implements IMembershipUser.UserName
        Get
            Return _userName
        End Get
        Set(ByVal value As String)
            _userName = value
        End Set
    End Property

#End Region

#Region " Public Methods "

    Public Sub New()

    End Sub

    Public Sub New(ByVal _membershipUser As System.Web.Security.MembershipUser)
        If _membershipUser IsNot Nothing Then
            With _membershipUser
                _comment = .Comment
                _creationDate = .CreationDate
                _email = .Email
                _isApproved = .IsApproved
                _isLockedOut = .IsLockedOut
                _isOnline = .IsOnline
                _lastActivityDate = .LastActivityDate
                _lastLockoutDate = .LastLockoutDate
                _lastLoginDate = .LastLoginDate
                _lastPasswordChangedDate = .LastPasswordChangedDate
                _passwordQuestion = .PasswordQuestion
                _providerName = .ProviderName
                _providerUserKey = .ProviderUserKey
                _userName = .UserName
            End With
        End If
    End Sub

    Public Function GetDefaultMembershipUser() As System.Web.Security.MembershipUser Implements IMembershipUser.GetDefaultMembershipUser
        With Me
            Dim _membershipUser As New System.Web.Security.MembershipUser(ProviderName, _
                        .UserName, .ProviderUserKey, .Email, .PasswordQuestion, .Comment, _
                        .IsApproved, .IsLockedOut, .CreationDate, .LastLoginDate, .LastActivityDate, _
                        .LastPasswordChangedDate, .LastLockoutDate)
            Return _membershipUser
        End With

    End Function

#End Region

End Class
